1. Technical Field
The present invention relates to an improved data processing system and, in particular, to system area networks. Still more particularly, the present invention provides a method and apparatus for multicast group management with send-without-receive group members.
2. Description of Related Art
InfiniBand (IB), which is a form of System Area Network (SAN), defines a multicast facility that allows a Channel Adapter (CA) to send a packet to a single address and have it delivered to multiple ports. The InfiniBand architecture is described in the InfiniBand standard, which is hereby incorporated by reference.
A unicast packet is sent from one node to one other node. The unicast packet includes in the header a unique address for the target node. The routers and switches route the packet to the target node based on the unique address or identifier.
In contrast, a multicast packet is sent to all ports of a collection of ports called a multicast group. These ports may be on the same or different nodes in the SAN. Each multicast group is identified by a unique multicast local identifier (MLID). The MLID is used for directing packets within a subnet. The MLID is in the header of the IB packet.
An IB management action via a Subnet Management Packet (SMP) is used when a node joins a multicast group, and at that time the LID of the port on the node is linked to the multicast group. The subnet's Subnet Manager (SM) then stores this information in the switches of its subnet using SMPs. The SM, via SMPs, tells the switches the routing information for the various multicast groups, and the switches store that information, so that the switches can route the multicast packets to the correct nodes.
When a node is going to send a packet to the multicast group, it uses the MLID of the group to which it wants the packet to be delivered. The switches in the subnet detect the MLID in the packet's destination local identifier (DLID) field and replicate the packet, sending it to the appropriate ports, as previously set up by the SM.
Multicast group members may send packets without receiving. These group members, referred to as send-without-receive (SWR) members, are commonly needed for streaming data multicast, for example, or compatibility with other common multicast implementations, such as Internet Protocol (IP) multicast.
Switched media, such as InfiniBand, do not automatically allow participants to send without joining the group. All communication must be explicitly routed by switching elements, including sending data without receiving. When a join request is sent, the SM programs the switches to forward the multicast packets to the nodes that have requested to join the group and to receive the packets.
However, when a SWR member initially joins a group and the group does not already exist, then there is the issue of a SWR member sending with no receivers. Currently, the IB architecture does not create the group. Instead, the SWR joiner must sign up to receive a trap message that is emitted whenever any group is created. The SWR may then inspect each trap message to see which group has been created. When it finds that the group of interest is created, the SWR joiner can repeat its request to join that group with some hope of success. “Signing up” to receive a trap is done by sending a message to an entity called “Subnet Administration” (SA) that is associated with the SM. When the group has been successfully joined, the SWR joiner usually eliminates its subscription to those trap messages by sending another message requesting that operation.
Also, when the last receiving member leaves the group, the IB architecture currently deletes the group, even if the SWR is still sending. Therefore, the SWR must sign up to receive the additional trap messages which signal the deletion of any group, and continually inspect them to see if its group of interest has been deleted. Having discovered this deletion, the SWR must then purge its MLID information about that group, since the SM may re-use the same MLID value for a different group. Otherwise the SWR may send packets to the wrong group.
When the group to which the SWR is sending is deleted, the SWR must then sign up again to receive a trap message whenever a group is created and the process repeats until the SWR stops sending to the group. In this way, the SWR only joins a group when there are receivers and is forced to wait when there are no receivers.
However, this process results in a significant overhead for the SM and the SWR joiner. The SWR receives a message for every group created, whether it is a group of interest or not. The SWR must also receive a message for every deleted group, not just when the specific group of interest is deleted. Whenever the SWR is attempting to send to the group, these messages are being generated by the SM and received by the SWR joiner.
Therefore, it would be advantageous to provide an improved method and apparatus for multicast group management in InfiniBand.